<?php
class EquiposOperativosController extends AppController {

	var $name = 'EquiposOperativos';
	var $uses = array('EquiposOperativo','User', 'UsersEquiposOperativo');
	var $helpers=array('Access');

	function index() 
	{
		$this->EquiposOperativo->recursive = 0;	
		$equiposOperativo = $this->paginate('EquiposOperativo');
				
		foreach ($equiposOperativo as &$equipoOperativo){		
		  $municipio_por_zona=$this->EquiposOperativo->Zona->find('first',array('conditions'=>array('Zona.id'=>$equipoOperativo['EquiposOperativo']['zona_id'])));
		  $municipio_id=$municipio_por_zona['Zona']['municipio_id'];

		  $nombre_municipio=$this->EquiposOperativo->Zona->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$municipio_id)));
		  $nombre_municipio=$nombre_municipio['Municipio']['nombre'];
		  
		  $equipoOperativo['EquiposOperativo']['nombre_zona']=$nombre_municipio;		 
		}
		$this->set(compact('equiposOperativo'));
	}

	function view($id = null) 
	{
		if (!$id) {
			$this->Session->setFlash(__('Invalid equipos operativo', true));
			$this->redirect(array('action'=>'index'));
		}

		$equiposOperativo=$this->paginate('EquiposOperativo');

		foreach ($equiposOperativo as &$equipoOperativo)
		{

			//busco el municipio que le corresponde a la zona
			$municipio_por_zona=$this->EquiposOperativo->Zona->find('first',array('conditions'=>array('Zona.id'=>$equipoOperativo['EquiposOperativo']['zona_id'])));
			$municipio_id=$municipio_por_zona['Zona']['municipio_id'];
			//busco el nombre del municipio obtenido
			$nombre_municipio=$this->EquiposOperativo->Zona->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$municipio_id)));
			$nombre_municipio=$nombre_municipio['Municipio']['nombre'];
			//a cada equipo operativo asigno el nombre del municipio
			$equipoOperativo['EquiposOperativo']['nombre_zona']=$nombre_municipio;
		}	
		$this->set(compact('equiposOperativo'));		


	}

	function add(){
		if (!empty($this->data)){
			$this->EquiposOperativo->create();
			$form = $this->data;
			

			if ($this->EquiposOperativo->save($form)){				
				$eo = $this->EquiposOperativo->id;								
				$grupos = $this->EquiposOperativo->User->Group->find('list');		
			
				foreach ($grupos as $grupo):
					if(!empty($form['EquiposOperativo'][$grupo]['usuarios'])){
						foreach ($form['EquiposOperativo'][$grupo]['usuarios'] as $usuario):
							$registro['UsersEquiposOperativo']=array('user_id'=>$usuario, 'equipos_operativo_id'=>$eo, 'group_id'=>$grupo);
							$this->UsersEquiposOperativo->create();
							$this->UsersEquiposOperativo->save($registro);
						endforeach;
					}
				endforeach;			
				
				$this->Session->setFlash(__('El equipo operativo ha sido guardado', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El equipo operativo no se ha podido guardar', true));
			}
		}
		$zonas = $this->EquiposOperativo->Zona->find('all',array('fields'=>array('Zona.id','Zona.municipio_id')));
		$zonas_reales;
		
		foreach ($zonas as &$zona){		
			$adquirir_nombre_municipio = $this->EquiposOperativo->Zona->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$zona['Zona']['municipio_id'])));
			$zona['nombre_municipio']=$adquirir_nombre_municipio['Municipio']['nombre'];
			$zonas_reales[$zona['Zona']['id']]=$zona['nombre_municipio'];			
		}
		$zonas = $zonas_reales;
				
		$groups = $this->EquiposOperativo->User->Group->find('all',array('fields'=>array('Group.id','Group.nombre')));		
		$users = $this->EquiposOperativo->User->find('list',array('fields'=>array('User.id','User.nombre_completo')));
		$grupos_reales; $i=0;
		/*Para el manejo de los roles de usuarios */
		foreach ($groups as $grupito){
			$grupos_reales[$i]['id'] = $grupito['Group']['id'];
			$grupos_reales[$i]['nombre'] = $grupito['Group']['nombre'];
			$adquirir_grupo = $this->User->find('list',array('fields'=>array('User.id','User.nombre_completo'),'conditions'=>array('User.group_id'=>$grupito['Group']['id'])));
			$grupos_reales[$i]['usuarios']=$adquirir_grupo;			
			$i++;			
		}
		$this->set(compact('zonas', 'grupos_reales'));
	}

	function edit($id = null) 
	{
		if (!$id && empty($this->data)) {
			$this->Session->setFlash(__('Invalid equipos operativo', true));
			$this->redirect(array('action' => 'index'));
		}
		if (!empty($this->data)) {
			if ($this->EquiposOperativo->save($this->data)) {
				$this->Session->setFlash(__('El equipo operativo ha sido guardado.', true));
				$this->redirect(array('action' => 'index'));
			} else {
				$this->Session->setFlash(__('El equipo operativo no ha sido guardado. Por favor intente de nuevo.', true));
			}
		}
		if (empty($this->data)) {
			$this->data = $this->EquiposOperativo->read(null, $id);
		}

		$zonas = $this->EquiposOperativo->Zona->find('all',array('fields'=>array('Zona.id','Zona.municipio_id')));
		$zonas_reales;
		
		foreach ($zonas as &$zona){		
			$adquirir_nombre_municipio = $this->EquiposOperativo->Zona->Municipio->find('first',array('conditions'=>array('Municipio.id'=>$zona['Zona']['municipio_id'])));
			$zona['nombre_municipio']=$adquirir_nombre_municipio['Municipio']['nombre'];
			$zonas_reales[$zona['Zona']['id']]=$zona['nombre_municipio'];			
		}
		$zonas = $zonas_reales;
				
		$groups = $this->EquiposOperativo->User->Group->find('all',array('fields'=>array('Group.id','Group.nombre')));		
		$users = $this->EquiposOperativo->User->find('list',array('fields'=>array('User.id','User.nombre_completo')));
		
		$grupos_reales; $i=0;
		/*Para el manejo de los roles de usuarios */
		foreach ($groups as $grupito){
			$grupos_reales[$i]['id'] = $grupito['Group']['id'];
			$grupos_reales[$i]['nombre'] = $grupito['Group']['nombre'];
			$adquirir_grupo = $this->User->find('list',array('fields'=>array('User.id','User.nombre_completo'),'conditions'=>array('User.group_id'=>$grupito['Group']['id'])));
			$grupos_reales[$i]['usuarios']=$adquirir_grupo;

			$users = $this->UsersEquiposOperativo->find('list',array('fields'=>array('UsersEquiposOperativo.id','UsersEquiposOperativo.user_id'),
																			 'conditions'=>array('UsersEquiposOperativo.equipos_operativo_id'=>$this->data['EquiposOperativo']['id'],
																								 'UsersEquiposOperativo.group_id'=>$grupito['Group']['id'])));
			$usuarios_activos;			
			foreach ($users as $user){
				$usuarios_activos = $this->User->find('list',array('fields'=>array('User.id'),'conditions'=>array('User.id'=>$user)));
			}
			$grupos_reales[$i]['usuarios_activos']=$usuarios_activos;
			
			//die(var_dump($grupos_reales));
			$i++;
		}
		//die();
		$this->set(compact('zonas', 'grupos_reales'));

	}

	function delete($id = null) 
	{
		if (!$id) {
			$this->Session->setFlash(__('Invalid id for equipos operativo', true));
			$this->redirect(array('action'=>'index'));
		}
		if ($this->EquiposOperativo->delete($id)) {
			$this->Session->setFlash(__('Equipos operativo eliminado', true));
			$this->redirect(array('action'=>'index'));
		}
		$this->Session->setFlash(__('Equipos operativo no se ha podido eliminar.', true));
		$this->redirect(array('action' => 'index'));
	}
}
